package com.zwps.biz.api.model.vo.file.record;

import java.util.List;

import com.fasterxml.jackson.annotation.JsonIgnore;

import io.swagger.v3.oas.annotations.Hidden;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
 * @author shanwen
 * @description:
 * @date 2023-08-08
 * @ClassName ChannelImgVO
 */
@Schema(description = "文件信息")
@Getter
@Setter
@ToString
public class FileVO {
    /**
     * 文件id
     */
    @Schema(description = "文件id")
    private String id ;

    /**
     * 文件名称
     */
    @Schema(description = "文件名称")
    private String fileName;

    /**
     * 文件路径
     */
    @Schema(description = "文件路径")
    @Hidden
    @JsonIgnore
    private String filePath;

    @Schema(description = "文件地址")
    private String fileUrl;

    /**
     * 文件类型
     */
    @Schema(description = "文件类型")
    private String fileType;

    /**
     * 文件类（0：文件|1：图片|2：音频|3：视频|4：文档）
     */
    @Schema(description = "文件类（0：文件|1：图片|2：音频|3：视频|4：文档）")
    private String fileClass;

    /**
     * 文件大小（byte）
     */
    @Schema(description = "文件大小（byte）")
    private Integer fileSize;

    /**
     * 文件使用类型（1：原文件|2：压缩图片|3：压缩视频|4：视频封面）
     */
    @Schema(description = "文件使用类型（1：原文件|2：压缩图片|3：压缩视频|4：视频封面）")
    private Integer useType;

    /**
     * 外部文件
     */
    @Schema(description = "是否外部文件（0：系统上传文件|1：外部文件）")
    private Integer externalFile;

    /**
     * 上级文件ID
     */
    @Schema(description = "上级文件ID")
    private String parentId;

    /**
     * 内网地址
     */
    @Schema(description = "内网地址")
    private String fileInternalUrl;

    @Schema(description = "详情")
    private FileRecordVideoVO fileRecordVideoVO;
    
    @Schema(description = "子文件")
    private List<FileVO> children;
}
